Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Translational arm joint support #996

Merged

Conversation

biotinker
Copy link
Member

Note that this does not also include the API change, which is to simply rename "degrees" to "values" in JointPositions

Copy link
Member

@randhid randhid left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A few nits and a question for future proofing - which is not a big deal and I can see an easy refactor if it's an issue down the line.

component/arm/client.go Show resolved Hide resolved
component/arm/client.go Show resolved Hide resolved
component/arm/client.go Outdated Show resolved Hide resolved
component/arm/yahboom/dofbot_test.go Show resolved Hide resolved
motionplan/solvableFrameSystem.go Show resolved Hide resolved
referenceframe/frame.go Show resolved Hide resolved
referenceframe/model.go Show resolved Hide resolved
@edaniels
Copy link
Contributor

edaniels commented Jul 8, 2022

Q: this seems like a refactor. How does this support translational? Also, why put proto methods that are implemented once on an interface instead of keeping as a utility and ifc lean?

@biotinker
Copy link
Member Author

@edaniels the main/only thing gating translational joint support prior to this PR, is that arm joint positions are passed in as a list of raw floats, which are currently assumed to be in degrees and are converted to radians. If something with a translational joint receives the joint positions proto message, it needs to know which of those raw floats should be converted from degrees to radians and which should not.

The ultimate source of truth for what sort of value something expects is the thing ultimately consuming it, which is what is implemented here. The actual frames that represent a rotational movement will call utils.DegToRad when provided the protobuf value, while the translational ones will not. This also leaves the door open for someone to pass in some other sort of value and write their own transformation.

Copy link
Member

@randhid randhid left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's Get Translational Movement!

@viambot
Copy link
Member

viambot commented Jul 8, 2022

Code Coverage

Package Line Rate Health
go.viam.com/rdk/component/arm 52%
go.viam.com/rdk/component/arm/universalrobots 12%
go.viam.com/rdk/component/arm/varm 7%
go.viam.com/rdk/component/arm/xarm 2%
go.viam.com/rdk/component/arm/yahboom 7%
go.viam.com/rdk/component/base 69%
go.viam.com/rdk/component/base/agilex 62%
go.viam.com/rdk/component/base/boat 41%
go.viam.com/rdk/component/base/wheeled 74%
go.viam.com/rdk/component/board 64%
go.viam.com/rdk/component/board/arduino 9%
go.viam.com/rdk/component/board/fake 35%
go.viam.com/rdk/component/board/numato 17%
go.viam.com/rdk/component/board/pi 50%
go.viam.com/rdk/component/camera 71%
go.viam.com/rdk/component/camera/imagesource 52%
go.viam.com/rdk/component/gantry 68%
go.viam.com/rdk/component/gantry/multiaxis 84%
go.viam.com/rdk/component/gantry/oneaxis 86%
go.viam.com/rdk/component/generic 85%
go.viam.com/rdk/component/gps 92%
go.viam.com/rdk/component/gps/nmea 33%
go.viam.com/rdk/component/gripper 82%
go.viam.com/rdk/component/imu 69%
go.viam.com/rdk/component/input 86%
go.viam.com/rdk/component/input/gpio 87%
go.viam.com/rdk/component/motor 91%
go.viam.com/rdk/component/motor/dmc4000 69%
go.viam.com/rdk/component/motor/gpio 61%
go.viam.com/rdk/component/motor/gpiostepper 56%
go.viam.com/rdk/component/motor/tmcstepper 65%
go.viam.com/rdk/component/posetracker 89%
go.viam.com/rdk/component/sensor 89%
go.viam.com/rdk/component/servo 86%
go.viam.com/rdk/config 81%
go.viam.com/rdk/control 57%
go.viam.com/rdk/data 79%
go.viam.com/rdk/grpc/client 80%
go.viam.com/rdk/grpc/server 61%
go.viam.com/rdk/ml 67%
go.viam.com/rdk/ml/inference 70%
go.viam.com/rdk/motionplan 82%
go.viam.com/rdk/operation 93%
go.viam.com/rdk/pointcloud 73%
go.viam.com/rdk/protoutils 80%
go.viam.com/rdk/referenceframe 78%
go.viam.com/rdk/registry 68%
go.viam.com/rdk/resource 97%
go.viam.com/rdk/rimage 78%
go.viam.com/rdk/rimage/calibrate 73%
go.viam.com/rdk/rimage/cmd/both 76%
go.viam.com/rdk/rimage/transform 74%
go.viam.com/rdk/rimage/transform/cmd/extrinsic_calibration 67%
go.viam.com/rdk/robot 100%
go.viam.com/rdk/robot/framesystem 74%
go.viam.com/rdk/robot/impl 74%
go.viam.com/rdk/robot/web 61%
go.viam.com/rdk/samples/chess 0%
go.viam.com/rdk/samples/minirover 20%
go.viam.com/rdk/services/baseremotecontrol 74%
go.viam.com/rdk/services/datamanager 81%
go.viam.com/rdk/services/motion 93%
go.viam.com/rdk/services/navigation 35%
go.viam.com/rdk/services/sensors 95%
go.viam.com/rdk/services/shell 1%
go.viam.com/rdk/services/slam 83%
go.viam.com/rdk/services/vision 84%
go.viam.com/rdk/spatialmath 85%
go.viam.com/rdk/subtype 89%
go.viam.com/rdk/utils 74%
go.viam.com/rdk/vision 25%
go.viam.com/rdk/vision/chess 80%
go.viam.com/rdk/vision/delaunay 87%
go.viam.com/rdk/vision/keypoints 90%
go.viam.com/rdk/vision/objectdetection 81%
go.viam.com/rdk/vision/odometry 88%
go.viam.com/rdk/vision/odometry/cmd 35%
go.viam.com/rdk/vision/segmentation 49%
Summary 67% (16206 / 24084)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants